[アップデート]Amazon GuardDutyのでVPCエンドポイントを利用したクレデンシャルの悪用を検出できるようになりました
こんにちは、臼田です。
みなさん、AWS上の脅威検出してますか?(挨拶
今回Amazon GuardDutyで漏洩したクレデンシャルの悪用を検出できるUnauthorizedAccess:IAMUser/InstanceCredentialExfiltrate.InsideAWSのFinding Typeにて、VPCエンドポイントを利用した悪用も検出できるようになりました。
どいういうことか?というところから解説します。
何が変わったのか
まずUnauthorizedAccess:IAMUser/InstanceCredentialExfiltrate.InsideAWSのFinding Type(以下InsideAWS)について紹介します。
InsideAWSはEC2にアタッチされているIAM Roleの一時的なクレデンシャルが、SSRFなどの攻撃手法によって漏洩し、そのクレデンシャルが別のAWSアカウントから悪用された場合に検出してくれます。
漏洩したクレデンシャルが悪用されたことに気づけるため、非常に大事なタイプです。
以前はUnauthorizedAccess:IAMUser/InstanceCredentialExfiltrateという検出タイプのみで、これは現在だとUnauthorizedAccess:IAMUser/InstanceCredentialExfiltrate.OutsideAWSであり、AWSの外部で利用された場合のみ検出できていました。下記ブログのタイミングで攻撃者のAWSアカウントなど、別のAWSアカウントからの悪用も検出されるようになりました。
しかし、それでもこれまでは攻撃者のAWSアカウントでVPCエンドポイントを利用した悪用の場合にはGuardDutyが検出できないという問題がありました。
今回VPCエンドポイントを利用した悪用でも検出できるようになりました。
強化内容
アップデートの詳細はHistoryには以下のように書かれています。
GuardDuty は、UnauthorizedAccess:IAMUser/InstanceCredentialExfiltrate.InsideAWS検出タイプを拡張して、Amazon EC2 インスタンスロールに関連付けられていない AWS アカウントの VPC エンドポイント (AWS PrivateLink) からの Amazon EC2 インスタンス AWS 認証情報の使用を検出します。この新しい GuardDuty 機能は、潜在的な Amazon EC2 インスタンス認証情報の不正使用を検出し、漏洩セッション認証情報を使用しているリモート AWS アカウントのコンテキストを提供します。この新しい検出でサポートされる AWS サービスエンドポイントの詳細については、 AWS CloudTrail ユーザーガイドの「ネットワークアクティビティイベントのログ記録」を参照してください。
先日AWS CloudTrailでVPC Endpointのネットワークアクティビティイベントのログ記録ができるようになりました。
この機能で記録できる通信についてAmazon GuardDutyで検出できるようになったようです。そのため、この機能が記録できるAWSサービスのみがInsideAWSでの検出範囲となることには注意が必要です。現時点では以下がサポートされています。
- AWS CloudTrail
- Amazon EC2
- AWS Key Management Service (KMS)
- AWS Secrets Manager
やってみた
実際にクレデンシャルを漏洩させて、別のAWSアカウントから操作してみましょう。ちなみに最近だとIMDSもv2である環境が多いと思うので、以下が参考になります。
セットアップや細かい漏洩手順などは割愛します。
なお、本機能を利用するためにAWS CloudTrailでVPC Endpointのネットワークアクティビティイベントのログ記録設定などは不要です。追加の設定なく検出可能です。
攻撃すると無事検出が上がりました。
これまでのInsideAWSとは違いVPCエンドポイントを利用した検出のため、ActorのIPアドレスがローカルIPになっています。その影響からか、Location情報などもUNKNOWNになっていますね。
まとめ
これまで検出できなかった悪用が検出できるようになった非常に頼もしいアップデートでした。
まだ対応できるAWSサービスが少ないですが、カバレッジを広げてほしいですね。